package fun.tan90.easy.binlog.plugin.kafka.model;

import fun.tan90.easy.binlog.plugin.common.model.OutputParam;
import lombok.Data;

/**
 * description TODO
 * company 铁人科技
 *
 * @author 陈浩杰
 * @date 2023/9/4 16:57
 */
@Data
public class KafkaClientParams implements OutputParam {

    /**
     * 地址列表 *
     */
    private String bootstrapServers;

    /**
     * "0"（不需要确认），"1"（只要 Leader 确认就可以），"all"（等待 ISR 中所有副本确认）
     */
    private String acks = "1";

    /**
     * 生产者在消息发送失败时的重试次数
     */
    private int retries;

    /**
     * 单次发送消息的批次大小
     */
    private int batchSize = 16384;

    /**
     * 生产者在发送消息之前等待的最长时间（毫秒）
     */
    private int lingerMs;

    /**
     * 本地缓存消息的总体大小
     */
    private int bufferMemory = 33554432;

    /**
     * 压缩方式
     * none
     * gzip
     * snappy
     */
    private String compressionType = "none";

    /**
     * 获取元数据信息的最大有效期
     */
    private int metadataMaxAgeMs = 3000;
}
